延續昨天作用域,今天就來更細談認識 ES6 變數宣告的方式。
var:作用域是依 function 區分let、const:作用域是{} block 區塊var、let 差異var,會渲染到外面變數
var i = 0
for (var i = 0; i < 10; i++) {
console.log("跑到第" + i + "次");
}
console.log(i) ; // JS 21行

let
let i = 0
for (let i = 0; i < 10; i++) {
console.log("跑到第" + i + "次");
}
console.log(i);

if、elae迴圈為例以var為例,原本x設為1,在判斷式跑完後,變成5
var x = 1;
if (x === 1) {
var x = 5;
} else {
var x = 19;
}
console.log(x)

以let為例,可以發現在外面宣告let y = 1;並沒有受影響。
let y = 1;
if (y === 1) {
let y = 5;
} else {
let y = 19;
}
console.log(y)

const 常數dog = 'Tom' 後面要再修改變數的內容就會發生錯誤 <script>
const dog = 'Tom';
dog = 'Mary';
</script>

const定義物件... name: 'Wang',在外面改變其值的內容,並印出來,可以發現修改為name : 'Jason'
<script>
const farm = {
name: 'Wang',
pet: 'dog'
}
farm['name'] = 'Jason';
console.log(farm);
</script>

push資料進去喔! <script>
const a = { name: 'mike' };
const b = ['eva'];
a["age"] = 18;
b.push("tom");
console.log(a);
console.log(b)
</script>

參考資料:
ES6 開始的新生活 let, const
Javascript 學習筆記: 變數(Variable)宣告
JavaScript 使用const關鍵字宣告常數